package com.homedo.odin.solution.model.request.mng.adservings;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.List;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty;
import org.hibernate.validator.constraints.Range;

@ApiModel(description = "发布新广告")
@JsonIgnoreProperties(ignoreUnknown = true)
@Data
public class MngAdServingsRequestBean {

    /**
     * 操作人
     */
    @ApiModelProperty(value = "操作人Id", required = true)
    @NotNull(message = "操作人userId不能为空")
    @Min(value = 0, message = "操作人userId非法")
    private Long userId;


    @ApiModelProperty(value = "操作人名称", required = true)
    @NotEmpty(message = "操作人名称不能为空")
    private String operator;

    /**
     * 投放广告位
     */
    @ApiModelProperty(value = "投放广告位(pageCode areaCode number3个参数定位具体的广告位  示例：solution_down_1  solution_down_2一直到7是方案管广告位，我的财富广告位code ：my_treasure_top_1)", required = true)
    @NotEmpty(message = "投放广告位positionCode不能为空")
    private String positionCode;
    /**
     * 广告类型，0：默认广告，1：投放广告
     */
    @ApiModelProperty(value = "广告类型，0：默认广告，1：投放广告", required = true)
    @NotNull(message = "广告类型adType不能为空 0：默认广告，1：投放广告")
    @Range(min = 0, max = 1, message = "广告类型参数错误 0：默认广告，1：投放广告")
    private Integer adType;
    /**
     * 广告标题
     */
    @ApiModelProperty(value = "广告标题", required = true)
    @NotEmpty(message = "广告标题adTitle不能为空")
    private String adTitle;
    /**
     * 上架时间
     */
    @ApiModelProperty(value = "上架时间", required = true)
    private String shelveTime;
    /**
     * 上架周期（天）
     */
    @ApiModelProperty(value = "上架周期（天）", required = true)
    @NotNull(message = "上架周期shelveDays不能为空")
    @Min(value = 0, message = "上架周期过大")
    private Integer shelveDays;
    /**
     * 资源类型，0：文本，1：图片，2：视频
     */
    @ApiModelProperty(value = "资源类型，0：文本，1：图片，2：视频", required = true)
    @NotNull(message = "资源类型resourceType不能为空")
    @Range(min = 0, max = 2, message = "资源类型resourceType参数异常  0：文本，1：图片，2：视频")
    private Integer resourceType;
    /**
     * 广告资源（图片、视频）URL地址
     */
    @ApiModelProperty(value = "广告资源（图片、视频）URL地址", required = true)
    private String resourceUrl;
    /**
     * 广告文本信息
     */
    @ApiModelProperty(value = "广告文本信息", required = true)
    private String text;
    /**
     * 广告链接
     */
    @ApiModelProperty(value = "广告链接", required = true)
    @NotEmpty(message = "广告链接不能为空")
    private String adUrl;
    /**
     * 投放用户组
     */
    @ApiModelProperty(value = "投放用户组（财富广告需求参数）：0：全部，1：新人，2：铜牌，3：银牌，4：金牌，5：铂金，6：钻石", required = true)
    private List<Integer> userGroupIds;


    @ApiModelProperty(value = "上架状态", hidden = true)
    private Integer status;
}
